ostree.git
12 years agorepo: Clean up tmpdir also on transaction abort
Colin Walters [Tue, 27 Aug 2013 15:32:26 +0000 (11:32 -0400)]
repo: Clean up tmpdir also on transaction abort

Pull the cleanup code to a helper function, and ensure we delete
leftover temporary files also when aborting a transaction.  Mainly
this will happen if a local 'ostree commit' fails.

While we're here, also change it to use gs_shutil_rm_rf() which also
handles directories, should we start using those.

Reviewed-by: Jeremy Whiting <jpwhiting@kde.org>
12 years agorepo: Clean up temporaries after a transaction completes
Jeremy Whiting [Mon, 26 Aug 2013 21:44:06 +0000 (15:44 -0600)]
repo: Clean up temporaries after a transaction completes

Prevously, we were just leaving temporary files there forever if
a transaction was interrupted.

https://bugzilla.gnome.org/show_bug.cgi?id=706344

12 years agotrivial-httpd: Add missing include for shutdown() on eglibc
Colin Walters [Mon, 26 Aug 2013 21:57:43 +0000 (17:57 -0400)]
trivial-httpd: Add missing include for shutdown() on eglibc

12 years agotrivial-httpd: Close the socket when sending partial files
Jeremy Whiting [Mon, 26 Aug 2013 20:52:43 +0000 (14:52 -0600)]
trivial-httpd: Close the socket when sending partial files

This will force the client to re-request them, which will be used to
test interrupted "ostree pull" requests.

https://bugzilla.gnome.org/show_bug.cgi?id=706344

12 years agoRelease 2013.6
Colin Walters [Mon, 26 Aug 2013 03:34:51 +0000 (23:34 -0400)]
Release 2013.6

12 years agodoc/adapting-existing: Describe /lib/passwd
Colin Walters [Sun, 25 Aug 2013 20:12:14 +0000 (16:12 -0400)]
doc/adapting-existing: Describe /lib/passwd

12 years agomain: Code cleanup by passing OstreeRepo * directly to builtins
Colin Walters [Sun, 25 Aug 2013 19:11:05 +0000 (15:11 -0400)]
main: Code cleanup by passing OstreeRepo * directly to builtins

It turns out every builtin (with one special exception) that takes a
repo argument did the same thing; let's just centralize it.  The
special exception was "ostree init --repo=foo" where foo is expected
to *not* actually be a repo.  In that case, simply skip the
ostree_repo_check() invocation.

https://bugzilla.gnome.org/show_bug.cgi?id=706762

12 years agolibostree: Improve commit filter API
Colin Walters [Sat, 17 Aug 2013 18:19:37 +0000 (14:19 -0400)]
libostree: Improve commit filter API

Make the structure private, and document the flags.

https://bugzilla.gnome.org/show_bug.cgi?id=706214

12 years agopull: Drop obsoleted "related objects" API
Colin Walters [Mon, 19 Aug 2013 23:13:53 +0000 (19:13 -0400)]
pull: Drop obsoleted "related objects" API

We removed support for writing "related objects" from ostree commits
in ostree git c9b61cbfee5d3cd0433ef14eac9ba9d1b24a0e38 because it just
didn't work out as an idea.  This also removes the API and code from
"ostree pull".

Note there was no test suite coverage.

https://bugzilla.gnome.org/show_bug.cgi?id=706342

12 years agorepo: Fix object storage size API to be 64 bit
Colin Walters [Sun, 18 Aug 2013 11:56:20 +0000 (07:56 -0400)]
repo: Fix object storage size API to be 64 bit

This fixes a pointer size warning on 32-bit builds.

https://bugzilla.gnome.org/show_bug.cgi?id=706235

12 years agodoc: Minor tweaks
Colin Walters [Sun, 25 Aug 2013 14:32:40 +0000 (10:32 -0400)]
doc: Minor tweaks

12 years agodoc/adapting-existing: Elaborate a bit more on FS layout and links
Colin Walters [Sun, 25 Aug 2013 14:23:19 +0000 (10:23 -0400)]
doc/adapting-existing: Elaborate a bit more on FS layout and links

12 years agodoc/adapting-existing: A bit more elaboration and a typo fix
Colin Walters [Sat, 24 Aug 2013 23:18:57 +0000 (19:18 -0400)]
doc/adapting-existing: A bit more elaboration and a typo fix

12 years agodoc: Add some docs about adapting existing package managers
Colin Walters [Sat, 24 Aug 2013 15:35:42 +0000 (11:35 -0400)]
doc: Add some docs about adapting existing package managers

12 years agopull: Update comment to better reflect current reality
Colin Walters [Fri, 23 Aug 2013 21:31:24 +0000 (17:31 -0400)]
pull: Update comment to better reflect current reality

12 years agodoc/repo: Describe object types
Colin Walters [Fri, 23 Aug 2013 21:21:31 +0000 (17:21 -0400)]
doc/repo: Describe object types

12 years agodoc/overview: Add a note about the GPL
Colin Walters [Fri, 23 Aug 2013 21:21:19 +0000 (17:21 -0400)]
doc/overview: Add a note about the GPL

12 years agodoc: Add a section about how atomic upgrades work
Colin Walters [Thu, 22 Aug 2013 23:14:23 +0000 (19:14 -0400)]
doc: Add a section about how atomic upgrades work

Migrating some content from
https://live.gnome.org/OSTree/DeploymentModel2

12 years agotrivial-httpd: Handle the autoexit case when the docroot is a symlink
Vivek Dasmohapatra [Thu, 22 Aug 2013 18:44:29 +0000 (19:44 +0100)]
trivial-httpd: Handle the autoexit case when the docroot is a symlink

12 years agotrivial-httpd: Close stdout & stdin so $() can capture output when daemonized
Vivek Dasmohapatra [Thu, 22 Aug 2013 18:43:44 +0000 (19:43 +0100)]
trivial-httpd: Close stdout & stdin so $() can capture output when daemonized

Will be used by tests.

12 years agotrivial-httpd: Handle -p - as meaning write-port-to-stdout
Vivek Dasmohapatra [Thu, 22 Aug 2013 17:28:14 +0000 (18:28 +0100)]
trivial-httpd: Handle -p - as meaning write-port-to-stdout

This is convenient to use from tests.

12 years agofetcher: Return NOT_FOUND when the HTTP code is 410 or 404
Vivek Dasmohapatra [Mon, 19 Aug 2013 17:13:44 +0000 (18:13 +0100)]
fetcher: Return NOT_FOUND when the HTTP code is 410 or 404

This will be used by the pull code to download optional data.

12 years agomain: Drop --archive option from init, now that the code is removed
Colin Walters [Mon, 19 Aug 2013 16:43:05 +0000 (12:43 -0400)]
main: Drop --archive option from init, now that the code is removed

Commit 1ec7c304086c14fe0540d9c371b66f64a7a81b2e removed archive mode,
so this bit needs to be removed too.

https://bugzilla.gnome.org/show_bug.cgi?id=706327

12 years agodoc: Split overview into chapters, expand a bit
Colin Walters [Thu, 22 Aug 2013 13:17:08 +0000 (09:17 -0400)]
doc: Split overview into chapters, expand a bit

12 years agodoc: Add a section on deployments
Colin Walters [Thu, 22 Aug 2013 12:47:50 +0000 (08:47 -0400)]
doc: Add a section on deployments

12 years agoadmin: notify detected bootloader configuration
Javier Martinez Canillas [Thu, 22 Aug 2013 02:00:45 +0000 (04:00 +0200)]
admin: notify detected bootloader configuration

OSTree now supports multiple bootloader backends so
notify which bootloader configuration was detected.

https://bugzilla.gnome.org/show_bug.cgi?id=706548

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
12 years agoadmin: Add API to OtBootloader to get name
Colin Walters [Thu, 22 Aug 2013 10:33:04 +0000 (06:33 -0400)]
admin: Add API to OtBootloader to get name

https://bugzilla.gnome.org/show_bug.cgi?id=706548

12 years agoadmin: Don't fail to deploy if there isn't a bootloader config
Javier Martinez Canillas [Tue, 20 Aug 2013 14:28:34 +0000 (14:28 +0000)]
admin: Don't fail to deploy if there isn't a bootloader config

Currently, when deploying an OSTree that does not contain a
bootloader configuration it fails with the following message:

"No known bootloader configuration detected"

A bootloader configuration is not strictly necessary if the
bootloader used is able to parse /boot/loader/entries on boot.

So, failing to deploy seems to be a little harsh. It is better
to just not write the bootloader configuration if a previous
one was not found but still swap the bootversion.

https://bugzilla.gnome.org/show_bug.cgi?id=706477

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
12 years agoadmin: Write out correct version fields in boot/loader/entries files
Colin Walters [Wed, 21 Aug 2013 22:48:00 +0000 (18:48 -0400)]
admin: Write out correct version fields in boot/loader/entries files

Before, we were writing the "bootversion", which is either 0 or 1, for
all entries.  This is completely wrong; the idea of the "version"
field is to compare between entries.

Fix this by writing out the inverted index - internally, index 0 is
the *first* boot entry, so we give it the highest version number, and
index N is the last, so give it version 0.

Then fix the deployment sorting code to correctly reverse the version
number comparison, so we read back the right order.

In practice before this bug didn't matter because "normally" you only
have at most two deployments.

https://bugzilla.gnome.org/show_bug.cgi?id=706546

12 years agodoc: Add repo docs
Colin Walters [Wed, 21 Aug 2013 12:26:24 +0000 (08:26 -0400)]
doc: Add repo docs

12 years agolibostree: Check out directories depth-first in serial, switch to sync API
Colin Walters [Tue, 20 Aug 2013 23:10:09 +0000 (19:10 -0400)]
libostree: Check out directories depth-first in serial, switch to sync API

The way we recurse into subdirectories in parallel makes it far too
easy to hit up against the arbitrary Linux fd limit of 1024.

Since the fix here is about dropping parallelism, let's just go all
the way for now and make a plain old synchronous API =(

This does simplify both internal callers which wanted a sync API
anyways.

https://bugzilla.gnome.org/show_bug.cgi?id=706380

12 years agomain: Add U-Boot bootlader backend support
Javier Martinez Canillas [Thu, 15 Aug 2013 10:33:25 +0000 (12:33 +0200)]
main: Add U-Boot bootlader backend support

This patch adds support to generate files that
can be used by Universal Bootloader (U-Boot).

U-Boot allows to modify boards default boot commands by
reading and executing a bootscript file or importing a
plain text file that contains environment variables that
could parameterize the boot command or a bootscript.

OSTree generates a uEnv.txt file that contains booting
information that is taken from Boot Loader Specification
snippets files as defined in the new OSTree deployment model:

https://wiki.gnome.org/OSTree/DeploymentModel2

On deploy or upgrade an uEnv.txt env var file is created
in the path /boot/loader.${bootversion}/uEnv.txt. Also, a
/boot/uEnv.txt symbolic link to loader/uEnv.txt is created
so U-Boot can always import the file from a fixed path.

Since U-Boot does not support a menu to list a set of
Operative Systems, the most recent bootloader configuration
from the list is used.

To boot an OSTree using the generated uEnv.txt file, a
board has to parameterize its default boot command using the
following variables defined by OSTree:

${kernel_image}:  path to the Linux kernel image
${ramdisk_image}: path to the initial ramdisk image
${bootargs}:      parameters passed to the kernel command line

Alternatively, for boards that don't support this scheme,
a bootscript that overrides the default boot command can be used.

An example of such a bootscript could be:

setenv scriptaddr 40008000
setenv kernel_addr 0x40007000
setenv ramdisk_addr 0x42000000
ext2load mmc 0:1 ${scriptaddr} uEnv.txt
env import -t ${scriptaddr} ${filesize}
ext2load mmc 0:1 ${kernel_addr} ${kernel_image}
ext2load mmc 0:1 ${ramdisk_addr} ${ramdisk_image}
bootm ${kernel_addr} ${ramdisk_addr}

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=706370

12 years agoadmin: Extract ot_admin_join_config_lines() helper function
Javier Martinez Canillas [Tue, 20 Aug 2013 15:54:59 +0000 (17:54 +0200)]
admin: Extract ot_admin_join_config_lines() helper function

ot-bootloader-syslinux.c has a join_lines() function that is rather
generic and can be used in other places. Let's add it as a helper
function.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=706370

12 years agotest: fix a trivial typo in libtests.sh
Javier Martinez Canillas [Thu, 15 Aug 2013 22:59:01 +0000 (00:59 +0200)]
test: fix a trivial typo in libtests.sh

When running the test-admin-deploy-1.sh unit test,
cat shows the following error:

cat: boot/vmlinuz-3-6.0: No such file or directory

due a trivial typo in the kernel image file name.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=706371

12 years agolibostree: Extend gtk-doc coverage for refs and prune APIs
Colin Walters [Mon, 19 Aug 2013 14:16:05 +0000 (10:16 -0400)]
libostree: Extend gtk-doc coverage for refs and prune APIs

12 years agoostree.doap: Update description based on docs.
Colin Walters [Mon, 19 Aug 2013 13:01:20 +0000 (09:01 -0400)]
ostree.doap: Update description based on docs.

12 years agomain: Use macro to reduce duplication among builtin prototypes
Colin Walters [Mon, 19 Aug 2013 13:00:02 +0000 (09:00 -0400)]
main: Use macro to reduce duplication among builtin prototypes

Just less code.

12 years agoRevert "libotutil: Make use of GBytes in ot_variant_read()"
Colin Walters [Sun, 18 Aug 2013 11:51:25 +0000 (07:51 -0400)]
Revert "libotutil: Make use of GBytes in ot_variant_read()"

This reverts commit c77908bf514d61e75798932f61b5b414d9e36a3c; we can't
do this since g_variant_get_data_as_bytes() is a GLib 2.36 API.

12 years agolibotutil: Drop accidental use of GLib 2.36 API
Colin Walters [Sun, 18 Aug 2013 11:50:50 +0000 (07:50 -0400)]
libotutil: Drop accidental use of GLib 2.36 API

Sticking with 2.34 for a while longer.

12 years agoUse { 0, } for structure initialization rather than memset()
Colin Walters [Sat, 17 Aug 2013 11:59:23 +0000 (07:59 -0400)]
Use { 0, } for structure initialization rather than memset()

It's cleaner, safer, and I had a totally wrong idea stuck in my head
about why memset() should be used.

https://bugzilla.gnome.org/show_bug.cgi?id=705968

12 years agoRelease 2013.5
Colin Walters [Sat, 17 Aug 2013 21:05:17 +0000 (17:05 -0400)]
Release 2013.5

12 years agobuild: Fix and prettify build option output
Colin Walters [Sat, 17 Aug 2013 19:21:31 +0000 (15:21 -0400)]
build: Fix and prettify build option output

The documentation one was broken by the gtk-doc changes, and let's
align things.

12 years agoostree init: Fix mode list help string
Sjoerd Simons [Mon, 12 Aug 2013 08:53:03 +0000 (10:53 +0200)]
ostree init: Fix mode list help string

It's archive-z2, not archive-z.

https://bugzilla.gnome.org/show_bug.cgi?id=705849

12 years agoFix make distcheck
Sjoerd Simons [Mon, 12 Aug 2013 14:27:42 +0000 (16:27 +0200)]
Fix make distcheck

make distcheck was unhappy for various reasons:
  * headers aren't data, so use _HEADERS otherwise compilation fails
  * Mark the gir & typelib data as cleanfiles so they aren't left around
    after make clean
  * Don't nuke the .la file. This breaks make uninstall, leave it up to
    distributions to not install .la files if they don't want them.

https://bugzilla.gnome.org/show_bug.cgi?id=705850

12 years agolibostree: Delete some leftover remnant API for archive files
Colin Walters [Sat, 17 Aug 2013 18:08:04 +0000 (14:08 -0400)]
libostree: Delete some leftover remnant API for archive files

12 years agolibostree: Increase gtk-doc coverage of ostree-repo.[ch]
Colin Walters [Sat, 17 Aug 2013 17:57:22 +0000 (13:57 -0400)]
libostree: Increase gtk-doc coverage of ostree-repo.[ch]

12 years agolibostree: Add gtk-doc section for ostree-repo.c
Colin Walters [Sat, 17 Aug 2013 17:22:58 +0000 (13:22 -0400)]
libostree: Add gtk-doc section for ostree-repo.c

12 years agolibostree: More gtk-doc updates for ostree-core
Colin Walters [Sat, 17 Aug 2013 14:54:00 +0000 (10:54 -0400)]
libostree: More gtk-doc updates for ostree-core

12 years agodocs: Add an overview section, migrate some content from the wiki
Colin Walters [Sat, 17 Aug 2013 13:22:08 +0000 (09:22 -0400)]
docs: Add an overview section, migrate some content from the wiki

12 years agolibostree: Fix many gtk-doc warnings
Colin Walters [Sat, 17 Aug 2013 12:41:31 +0000 (08:41 -0400)]
libostree: Fix many gtk-doc warnings

12 years agocore: Drop duplicated type declarations
Colin Walters [Sat, 17 Aug 2013 12:23:28 +0000 (08:23 -0400)]
core: Drop duplicated type declarations

3 fewer gtk-doc warnings, 99 still left on the wall...

12 years agolibostree: Document more core macros
Colin Walters [Sat, 17 Aug 2013 12:21:04 +0000 (08:21 -0400)]
libostree: Document more core macros

12 years agoFix use of uninitialized memory in ostree_builtin_checksum()
Stef Walter [Wed, 14 Aug 2013 08:20:41 +0000 (10:20 +0200)]
Fix use of uninitialized memory in ostree_builtin_checksum()

https://bugzilla.gnome.org/show_bug.cgi?id=705968

12 years agoTODO: Tweak
Colin Walters [Sat, 17 Aug 2013 03:19:30 +0000 (23:19 -0400)]
TODO: Tweak

12 years agobuild: Fix the build without documentation
Colin Walters [Sat, 17 Aug 2013 03:14:30 +0000 (23:14 -0400)]
build: Fix the build without documentation

Just key everything of gtk-doc.

12 years agocore: Remove old "archive" mode
Colin Walters [Thu, 15 Aug 2013 10:34:48 +0000 (06:34 -0400)]
core: Remove old "archive" mode

We'll always have "bare" mode for keeping files-as-hardlinks as root.
But "archive" was my second attempt at a format for non-root file
storage, used by the gnome-ostree buildsystem which runs as non-root.

It was really handy to have a "tar" like mode where I can create
tarballs as a user, that contain files owned by root for example.

The "archive" mode stored content files as two pieces in the
filesystem; ".file" contained metadata, and ".filecontent" was the
actual content, uncompressed.  The nice thing about this was that to
check out a tree as non-root, you could just hardlink into the repo.

However, archive was fairly bad for serving via HTTP; it required
*two* HTTP requests per content object, greatly magnifing the already
inefficient fetch process.  So "archive-z2" was introduced.

To allow gnome-ostree to still check out trees as a user, the
"uncompressed-object-cache" was introduced, and that's how things have
been working for a while.

So we should just be able to kill this code.  Specifically note just
how much better the stage_object() function became.

https://bugzilla.gnome.org/show_bug.cgi?id=706057

12 years agoAdd gtk-doc support
Colin Walters [Sat, 17 Aug 2013 02:54:35 +0000 (22:54 -0400)]
Add gtk-doc support

Yes, it's really me.  Colin Walters.  Writing documentation.  You
don't need to do a DNA test.

12 years agoAdd 'ostree reset' command to undo a bad commit
Stef Walter [Wed, 14 Aug 2013 10:42:13 +0000 (12:42 +0200)]
Add 'ostree reset' command to undo a bad commit

Accepts the following arguments: ref checksum

Checks that the checksum is a parent of the ref before rewriting
the ref.

https://bugzilla.gnome.org/show_bug.cgi?id=705979

12 years agoconfigure: Use AS_IF() consistently
Colin Walters [Thu, 15 Aug 2013 22:33:19 +0000 (18:33 -0400)]
configure: Use AS_IF() consistently

See https://bugzilla.gnome.org/show_bug.cgi?id=681413

12 years agoInstall systemd units in the right location
Sjoerd Simons [Mon, 12 Aug 2013 17:27:27 +0000 (19:27 +0200)]
Install systemd units in the right location

Debian uses /lib/systemd/system for system unit files, while i'm
putting ostree under the /usr prefix which means the hardcoded path
fails. Leave it to configure to work out the right location for systemd
units (method copied from pollkit).

Furthermore instead of installing the unit in local-fs.target.wants by
hand add a [Install] section so systemctl enable does the right thing

https://bugzilla.gnome.org/show_bug.cgi?id=705864

12 years agocore: Use gs_stream_fstat()
Colin Walters [Thu, 15 Aug 2013 18:21:26 +0000 (14:21 -0400)]
core: Use gs_stream_fstat()

Just a cleanup.

12 years agocore: Add some more gtk-doc
Colin Walters [Thu, 15 Aug 2013 15:17:16 +0000 (11:17 -0400)]
core: Add some more gtk-doc

12 years agocore: Add some gtk-doc
Colin Walters [Thu, 15 Aug 2013 11:04:29 +0000 (07:04 -0400)]
core: Add some gtk-doc

Just documenting a few functions to get in the habit of things.

12 years agoAdd 'ostree log' command
Stef Walter [Wed, 14 Aug 2013 09:47:30 +0000 (11:47 +0200)]
Add 'ostree log' command

Follows the parent of commits showing each in turn until it reaches
the top of the commit tree.

https://bugzilla.gnome.org/show_bug.cgi?id=705973

12 years agoAdd ostree_commit_get_parent() to get parent from variant
Stef Walter [Wed, 14 Aug 2013 09:46:50 +0000 (11:46 +0200)]
Add ostree_commit_get_parent() to get parent from variant

https://bugzilla.gnome.org/show_bug.cgi?id=705973

12 years agoIntelligible display for 'ostree show'
Stef Walter [Wed, 14 Aug 2013 09:25:32 +0000 (11:25 +0200)]
Intelligible display for 'ostree show'

Show something similar to git metadata display. Show raw variant
data when --raw is specified

https://bugzilla.gnome.org/show_bug.cgi?id=705973

12 years agorepo: Add API to load any object as a stream
Colin Walters [Wed, 14 Aug 2013 22:18:10 +0000 (18:18 -0400)]
repo: Add API to load any object as a stream

We have APIs to load metadata as variants, and files as parsed
content/info/xattrs, but for some cases such as static deltas, all we
want is to operate on all objects in their canonical representation.

https://bugzilla.gnome.org/show_bug.cgi?id=706031

12 years agolibotutil: Make use of GBytes in ot_variant_read()
Colin Walters [Wed, 14 Aug 2013 23:54:30 +0000 (19:54 -0400)]
libotutil: Make use of GBytes in ot_variant_read()

This is just cleaner; we avoid using GObject data, etc.

https://bugzilla.gnome.org/show_bug.cgi?id=706031

12 years agocore: Add API to convert checksum -> csum in place
Colin Walters [Wed, 14 Aug 2013 22:17:09 +0000 (18:17 -0400)]
core: Add API to convert checksum -> csum in place

We already have the opposite, and this will be used in some
places to avoid a malloc.

https://bugzilla.gnome.org/show_bug.cgi?id=706031

12 years agolibotutil: Add API to create an "ay" GVariant from GBytes
Colin Walters [Wed, 14 Aug 2013 22:20:02 +0000 (18:20 -0400)]
libotutil: Add API to create an "ay" GVariant from GBytes

We used to have a version of this, but since I'm trying to use
GBytes more, this became a more common operation, and it's annoying
to type out the whole G_VARIANT_TYPE ("ay") each time, and pass
TRUE for trusted.

https://bugzilla.gnome.org/show_bug.cgi?id=706031

12 years agotrivial-httpd: Add --force-range-requests option to force range requests
Jeremy Whiting [Wed, 14 Aug 2013 20:08:25 +0000 (14:08 -0600)]
trivial-httpd: Add --force-range-requests option to force range requests

This will be used to test resuming interrupted downloads for
ostree-pull.

With this option, if a whole file is asked for, only half of the file
is given.  Then the client should retry with a range request, and
we'll give them the other half.

https://bugzilla.gnome.org/show_bug.cgi?id=705925

12 years agotest-xattrs: Skip if current FS doesn't support user_xattr
Colin Walters [Wed, 14 Aug 2013 18:46:46 +0000 (20:46 +0200)]
test-xattrs: Skip if current FS doesn't support user_xattr

tmpfs doesn't =(

12 years agocore: Add a comment header about the format
Colin Walters [Wed, 14 Aug 2013 15:27:30 +0000 (17:27 +0200)]
core: Add a comment header about the format

This should probably be a design document or something, but this is
useful for now.

12 years agoDon't pass non-checksums to ostree_repo_has_object()
Stef Walter [Wed, 14 Aug 2013 08:10:08 +0000 (10:10 +0200)]
Don't pass non-checksums to ostree_repo_has_object()

The 'ostree show' command passed non-checksum arguments
to the ostree_repo_has_object() function which led to
an assertion.

https://bugzilla.gnome.org/show_bug.cgi?id=705967

12 years agotests: Add xattr test case
Colin Walters [Wed, 14 Aug 2013 13:05:09 +0000 (15:05 +0200)]
tests: Add xattr test case

Since it was broken up until now for multiple attributes =(

12 years agoFix crasher when running 'ostree cat'
Stef Walter [Wed, 14 Aug 2013 07:01:18 +0000 (09:01 +0200)]
Fix crasher when running 'ostree cat'

Cause was a buffer read overrun.

https://bugzilla.gnome.org/show_bug.cgi?id=705964

12 years agoAdd some verbose log output when xattr functions fail
Stef Walter [Tue, 13 Aug 2013 13:42:06 +0000 (15:42 +0200)]
Add some verbose log output when xattr functions fail

If any of the system xattr functions fail, clearly write out the
reason in the verbose log output.

https://bugzilla.gnome.org/show_bug.cgi?id=705893

12 years agoDon't use XATTR_REPLACE with lsetxattr()
Stef Walter [Tue, 13 Aug 2013 13:41:12 +0000 (15:41 +0200)]
Don't use XATTR_REPLACE with lsetxattr()

If we pass XATTR_REPLACE then the attribute must already exist, which
is not our intent. Passing zero creates the attribute if necessary,
or replaces it when it already exists.

https://bugzilla.gnome.org/show_bug.cgi?id=705893

12 years agoProperly separate sorted xattr names
Stef Walter [Tue, 13 Aug 2013 13:40:06 +0000 (15:40 +0200)]
Properly separate sorted xattr names

We expect to be handling a string delimited by \0 characters, as
returned by llistxattr(). So stick to that behavior here.

https://bugzilla.gnome.org/show_bug.cgi?id=705893

12 years agoAdd some verbose logging to 'ostree commit'
Stef Walter [Tue, 13 Aug 2013 13:37:59 +0000 (15:37 +0200)]
Add some verbose logging to 'ostree commit'

This is so we can see near which file we fail when 'ostree commit'
falls over.

https://bugzilla.gnome.org/show_bug.cgi?id=705905

12 years agoAdd --verbose and -v arguments to ostree for details
Stef Walter [Tue, 13 Aug 2013 12:46:38 +0000 (14:46 +0200)]
Add --verbose and -v arguments to ostree for details

Use the GLib debug mechanism to handle verbose output.

https://bugzilla.gnome.org/show_bug.cgi?id=705905

12 years agoBetter parsing for global ostree options
Stef Walter [Tue, 13 Aug 2013 12:13:04 +0000 (14:13 +0200)]
Better parsing for global ostree options

 * Specifying global options after the command for a more natural:
   # ostree commit --repo=/path/to/repo ...
 * Support asking for --help without --repo
   # ostree commit --help
 * Support short form of -h
 * Support specifying --repo without equals sign
   # ostree --repo /path/to/repo commit ...
 * Support global --help and -h
   # ostree --help
 * Ditto for ostree admin sub commands
 * Removed some leaky code

https://bugzilla.gnome.org/show_bug.cgi?id=705903

12 years agoIgnore some built files
Stef Walter [Tue, 13 Aug 2013 12:10:25 +0000 (14:10 +0200)]
Ignore some built files

https://bugzilla.gnome.org/show_bug.cgi?id=705900

12 years agoUpdate libgsystem
Colin Walters [Wed, 7 Aug 2013 08:36:52 +0000 (10:36 +0200)]
Update libgsystem

With fd leak fix.

12 years agocore: Clean up temporary file creation
Colin Walters [Tue, 6 Aug 2013 21:58:29 +0000 (23:58 +0200)]
core: Clean up temporary file creation

Use new libgsystem API, don't expose the repo's tmpdir.

12 years agocore: Finish making object path API private
Colin Walters [Wed, 31 Jul 2013 07:48:31 +0000 (03:48 -0400)]
core: Finish making object path API private

This allows us to more easily change the internals later.

12 years agocore: Reduce API surface for file access
Colin Walters [Wed, 31 Jul 2013 00:56:33 +0000 (20:56 -0400)]
core: Reduce API surface for file access

This function was only used by internals, make it private.

12 years agoTODO: Update
Colin Walters [Wed, 31 Jul 2013 00:51:43 +0000 (20:51 -0400)]
TODO: Update

12 years agoadmin: Clean up builtin prototype
Colin Walters [Mon, 29 Jul 2013 22:44:41 +0000 (18:44 -0400)]
admin: Clean up builtin prototype

Pass through GCancellable, and just use GFile *sysroot, since that's
all OtAdminBuiltinOpts was.

12 years agomain: Assume / for ls if no path given
Colin Walters [Sun, 28 Jul 2013 00:12:07 +0000 (20:12 -0400)]
main: Assume / for ls if no path given

Since it just is kind of a sane default.

12 years agocore: Fix all introspection warnings
Colin Walters [Sat, 27 Jul 2013 14:13:30 +0000 (10:13 -0400)]
core: Fix all introspection warnings

Still lots more docs to write and API to cleanup, but this is better.

12 years agoInstall a shared library
Colin Walters [Fri, 26 Jul 2013 23:25:07 +0000 (19:25 -0400)]
Install a shared library

This required a fair bit of surgery because previously ostree.h
included otutil.h, but that's supposed to be a private library.

12 years agocore: Work around libguestfs/FUSE issue with setuid binaries
Colin Walters [Fri, 26 Jul 2013 18:48:15 +0000 (14:48 -0400)]
core: Work around libguestfs/FUSE issue with setuid binaries

For some reason, the setuid bits are being stripped.  This
workaround is enough for now.

12 years agoAdd API to retrieve statistics from transactions, use it in commit
Colin Walters [Thu, 25 Jul 2013 22:52:06 +0000 (18:52 -0400)]
Add API to retrieve statistics from transactions, use it in commit

It's just interesting to see =) This is also kind of prototyping out
some more "structured" output.

12 years agolib: Use -export-symbol-regex
Colin Walters [Thu, 25 Jul 2013 21:09:00 +0000 (17:09 -0400)]
lib: Use -export-symbol-regex

Just a small step towards being a better library.

12 years agofsck: Fix crash on repositories with < 10 objects
Colin Walters [Thu, 25 Jul 2013 16:06:21 +0000 (12:06 -0400)]
fsck: Fix crash on repositories with < 10 objects

12 years agopull: Tweak status line again, do what git does
Colin Walters [Wed, 24 Jul 2013 22:20:19 +0000 (18:20 -0400)]
pull: Tweak status line again, do what git does

Almost, we don't have bytes transferred.  And we lie about percentages
since as metadata comes in the total number of objects to fetch goes
up.

12 years agomain: Fix previous commit to find repo in cwd over /ostree/repo
Colin Walters [Wed, 24 Jul 2013 18:46:53 +0000 (14:46 -0400)]
main: Fix previous commit to find repo in cwd over /ostree/repo

The tests when run inside gnome-ostree broke, and this is better
behavior.

12 years agomain: Support using repo from current directory
Colin Walters [Wed, 24 Jul 2013 18:05:12 +0000 (14:05 -0400)]
main: Support using repo from current directory

$ cd repo
$ ostree ls foo /
...

Can be a lot more convenient than typing --repo=repo a lot.

12 years agoTODO: More bits about commit objects
Colin Walters [Wed, 24 Jul 2013 17:10:28 +0000 (13:10 -0400)]
TODO: More bits about commit objects